package com.sinping.qh.dto.admin.record;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.sinping.qh.domain.records.CheckUser;
import com.sinping.qh.domain.records.HiddendangerRecord;
import com.sinping.qh.domain.records.HighLightRecord;
import com.sinping.qh.dto.base.BaseDTO;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 检查记录Dto
 *
 * @author Tiansx
 * @create 2018-06-02 10:24
 **/
@Data
public class ApiCheckRecordDto extends BaseDTO implements Serializable {
    private static final long serialVersionUID = 5494729427339662413L;


    /**
     * 检查计划id
     */
    @JsonProperty(value = "check_plan_id")
    private String checkPlanId;
    /**
     * 检查日期
     */
    @JsonProperty(value ="check_date")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
    private Date checkDate;
    /**
     * 检查类型
     */
    @JsonProperty(value ="check_type")
    private String checkType;
    /**
     * 检查院系名称
     */
    @JsonProperty(value ="check_unit")
    private String checkUnit;
    /**
     * 检查院系id
     */
    @JsonProperty(value ="check_unit_id")
    private String checkUnitId;
    /**
     * 检查楼宇名称
     */
    @JsonProperty(value ="check_building")
    private String checkBuilding;
    /**
     * 检查楼宇id
     */
    @JsonProperty(value ="check_building_id")
    private String checkBuildingId;
    /**
     * 检查实验室名称
     */
    @JsonProperty(value ="check_lab")
    private String checkLab;
    /**
     * 检查实验室id
     */
    @JsonProperty(value ="check_lab_id")
    private String checkLabId;
    /**
     * 房间号
     */
    @JsonProperty(value ="check_room")
    private String checkRoom;
    /**
     * 所属所室
     */
    @JsonProperty(value ="offices")
    private String offices;
    /**
     * 院系参加人员
     */
    @JsonProperty(value ="union_unit_user")
    private String unionUnitUser;
    /**
     * 检查状态
     * 0-未检查；1-检查中；2-待审核；3-已审核
     */
    @JsonProperty(value ="check_status")
    private String checkStatus;
    /**
     * 修改人id
     */
    @JsonProperty(value ="update_user_id")
    private String updateUserId;
    /**
     * 检查人
     */
    @JsonProperty(value ="check_user")
    private List<CheckUser> checkUser;
    /**
     * 审核人
     */
    @JsonProperty(value ="examine_user")
    private String examineUser;

    /**
     * 审核意见
     */
    @JsonProperty(value ="examine_advice")
    private String examineAdvice;
    /**
     * 亮点记录
     */
    @JsonProperty(value ="highLight_record_list")
    private List<HighLightRecord>highLightRecordList;
    /**
     * 隐患记录
     */
    @JsonProperty(value = "hidden_danger_record_list")
    private List<HiddendangerRecord>hiddendangerRecordList;
    /**
     * 隐患状态集合
     */
    @JsonProperty(value = "hidden_danger_status_list")
    private List<String> hiddenDangerStatusList;
    /**
     * 检查记录idList
     */
    @JsonProperty(value = "check_record_ids")
    private List<String>checkRecordIdList;

    /**
     * 隐患数
     */
    @JsonProperty(value ="hidden_danger_count")
    private String hiddenDangerCount;
    /**
     * 整改数
     */
    @JsonProperty(value ="rectify_count")
    private String rectifyCount;
    /**
     * 查询条件：日期开始
     */
    @JsonProperty(value = "start_date")
    private Date startDate;
    /**
     * 查询条件：日期结束
     */
    @JsonProperty(value = "end_date")
    private Date endDate;

    /**
     * 以下是用于生成检查报告的
     */
    //实验室亮点
    @JsonProperty(value = "labHighLightRecord")
    private HighLightRecordDto labHighLightRecord;

    //院系级亮点
    @JsonProperty(value = "unitHighLightRecord")
    private HighLightRecordDto unitHighLightRecord;


    //隐患信息集合-院系级隐患
    @JsonProperty(value = "unitRecords")
    private List<HiddendangerRecordDto> unitRecords;

    //隐患信息集合-实验室隐患
    @JsonProperty(value = "labRecords")
    private List<HiddendangerRecordDto> labRecords;

    //实验室的负责人
    @JsonProperty(value = "risk_manager")
    private String riskManager;

    //实验室的危险等级
    @JsonProperty(value = "risk_level")
    private String riskLevel;

    //实验室的配置的危险源的检查项名称
    // AA;BB;CC
    @JsonProperty(value = "lab_inspect_item_namestr")
    private String labInspectItemNameStrs;
}
